home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / program / gamekeys.zip / TESTKEY.BAS < prev   
BASIC Source File  |  1996-06-15  |  4KB  |  151 lines

  1. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. '
  3. ' Game Keys Keyboard Handler for PowerBASIC
  4. ' Copyright (c) 1996 by Dave Navarro, Jr.  All Rights Reserved.
  5. '
  6. ' This .OBJ allows PowerBASIC programmers to get the state of any key on
  7. ' the keyboard.  Even better, if a key is held down it will NOT fill up your
  8. ' keyboard buffer and make that annoying beeping sound.
  9. '
  10. ' While GameKeysOn() is active all other keyboard routines (INKEY$, INPUT,
  11. ' INPUT(), INSTAT, etc..) are disabled.
  12. '
  13. ' If you call GameKeysOn() while game keys are already turned on, it will
  14. ' clear the state of all keys.
  15. '
  16. ' I am releasing this sample code and binary object file (.OBJ) as Freeware.
  17. ' Feel free to use them in you own programs without requirement of any
  18. ' payment to the author.
  19. '
  20. ' If you have any questions or suggestions, I can be reached via Internet
  21. ' email at:  dave@powerbasic.com
  22. '
  23. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  24.  
  25. $LINK "GAMEKEY.OBJ"
  26.  
  27. DECLARE SUB GameKeysOn()  'turn on Game Keys
  28. DECLARE SUB GameKeysOff() 'turn off Game Keys
  29. DECLARE FUNCTION GetKeyState(BYVAL WhichKey AS INTEGER) AS INTEGER
  30.  
  31. %K_A           = &H1E
  32. %K_B           = &H30
  33. %K_C           = &H2E
  34. %K_D           = &H20
  35. %K_E           = &H12
  36. %K_F           = &H21
  37. %K_G           = &H22
  38. %K_H           = &H23
  39. %K_I           = &H17
  40. %K_J           = &H24
  41. %K_K           = &H25
  42. %K_L           = &H26
  43. %K_M           = &H32
  44. %K_N           = &H31
  45. %K_O           = &H18
  46. %K_P           = &H19
  47. %K_Q           = &H10
  48. %K_R           = &H13
  49. %K_S           = &H1F
  50. %K_T           = &H14
  51. %K_U           = &H16
  52. %K_V           = &H2F
  53. %K_W           = &H11
  54. %K_X           = &H2D
  55. %K_Y           = &H15
  56. %K_Z           = &H2C
  57. %K_1           = &H02
  58. %K_2           = &H03
  59. %K_3           = &H04
  60. %K_4           = &H05
  61. %K_5           = &H06
  62. %K_6           = &H07
  63. %K_7           = &H08
  64. %K_8           = &H09
  65. %K_9           = &H0A
  66. %K_0           = &H0B
  67. %K_DASH        = &H0C    ' -_
  68. %K_EQUAL       = &H0D    ' =+
  69. %K_LBRACKET    = &H1A    ' [{
  70. %K_RBRACKET    = &H1B    ' ]}
  71. %K_SEMICOLON   = &H27    ' ;:
  72. %K_RQUOTE      = &H28    ' '"
  73. %K_LQUOTE      = &H29    ' `~
  74. %K_PERIOD      = &H33    ' .>
  75. %K_COMMA       = &H34    ' ,<
  76. %K_SLASH       = &H35    ' /?
  77. %K_BACKSLASH   = &H2B    ' \|
  78. %K_F1          = &H3B
  79. %K_F2          = &H3C
  80. %K_F3          = &H3D
  81. %K_F4          = &H3E
  82. %K_F5          = &H3F
  83. %K_F6          = &H40
  84. %K_F7          = &H41
  85. %K_F8          = &H42
  86. %K_F9          = &H43
  87. %K_F10         = &H44
  88. %K_ESC         = &H01
  89. %K_BACKSPACE   = &H0E
  90. %K_TAB         = &H0F
  91. %K_ENTER       = &H1C
  92. %K_CONTROL     = &H1D
  93. %K_LSHIFT      = &H2A
  94. %K_RSHIFT      = &H36
  95. %K_PRTSC       = &H37
  96. %K_ALT         = &H38
  97. %K_SPACE       = &H39
  98. %K_CAPSLOCK    = &H3A
  99. %K_NUMLOCK     = &H45
  100. %K_SCROLLLOCK  = &H46
  101. %K_HOME        = &H47
  102. %K_UP          = &H48
  103. %K_PGUP        = &H49
  104. %K_MINUS       = &H4A
  105. %K_LEFT        = &H4B
  106. %K_CENTER      = &H4C
  107. %K_RIGHT       = &H4D
  108. %K_PLUS        = &H4E
  109. %K_END         = &H4F
  110. %K_DOWN        = &H50
  111. %K_PGDOWN      = &H51
  112. %K_INS         = &H52
  113. %K_DEL         = &H53
  114.  
  115.  
  116. CLS
  117.  
  118. GameKeysOn
  119.  
  120. DO
  121.   LOCATE 1,1
  122.   IF GetKeyState(%K_LEFT) THEN
  123.     PRINT "  LEFT: ON "
  124.   ELSE
  125.     PRINT "  LEFT: OFF"
  126.   END IF
  127.   IF GetKeyState(%K_RIGHT) THEN
  128.     PRINT " RIGHT: ON "
  129.   ELSE
  130.     PRINT " RIGHT: OFF"
  131.   END IF
  132.   IF GetKeyState(%K_UP) THEN
  133.     PRINT "    UP: ON "
  134.   ELSE
  135.     PRINT "    UP: OFF"
  136.   END IF
  137.   IF GetKeyState(%K_DOWN) THEN
  138.     PRINT "  DOWN: ON "
  139.   ELSE
  140.     PRINT "  DOWN: OFF"
  141.   END IF
  142.   IF GetKeyState(%K_SPACE) THEN
  143.     PRINT "  FIRE: ON "
  144.   ELSE
  145.     PRINT "  FIRE: OFF"
  146.   END IF
  147.  
  148. LOOP UNTIL GetKeyState(%K_Esc)
  149.  
  150. GameKeysOff
  151.